home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / Apps / DevTools / aa_m68k_Only / NXLogo / README < prev    next >
Encoding:
Text File  |  1992-07-09  |  10.0 KB  |  185 lines

  1.        The following is the README file from the public domain Logo.
  2.                You should also read the NXLogoREADME file.
  3. ---------------------------------------------------------------------
  4.  
  5. Unix Logo Interpreter
  6.     Brian Harvey
  7.     Lincoln-Sudbury Regional High School
  8.  
  9. This is release 4 of Unix Logo.  It differs from release 3 in that it
  10. more closely follows the syntax of LCSI versions of Logo (Apple Logo,
  11. IBM Logo, etc.)  In particular, multiple commands on a line are allowed
  12. without semicolons required between them.  The prompt character is '?'
  13. instead of '*' as before.  The abbreviations 'f', 'l', and 'top' have
  14. been eliminated.  Positioned text (cleartext and setcursor) are supported
  15. using termlib.  The 'random' primitive now takes an input, like 'rnd',
  16. instead of being equivalent to 'rnd 10' as before.  Error messages are
  17. closer to those in other versions of Logo.  Procedure names can be longer
  18. than 11 characters if your version of Unix has long file names.
  19.  
  20. The following obsolete paragraph is included to help users of previous
  21. versions understand the version history.
  22.  
  23. -----
  24. This is release 3.2 of Unix Logo.  Release 1 was the one on the first 1982
  25. Usenix tape.  Release 2 was sent by me (BH) directly to only a few sites.
  26. This release is much like release 2 in capabilities and syntax, but has
  27. been rearranged internally somewhat to make the process of installation
  28. on a new system a bit easier.  One major new feature in release 3 is the
  29. pause facility, which allows interactive debugging in the local context
  30. of an error.  More on this below.  Release 3.1 differs from 3 only in a
  31. few bug fixes and in what is left out under the SMALL option.  Release 3.2
  32. differs from release 3.1 in bug fixes, better error messages, and one
  33. incompatible change: the quotient of two integers can be a non-integer.
  34. -----
  35.  
  36. I would like to thank Don Martin and his students at the College of Marin,
  37. who have found huge numbers of obscure bugs in Logo and therefore helped
  38. make this release much more reliable than it would otherwise have been.
  39.  
  40. Logo is a programming language for education.  It is, I think, unquestionably
  41. the best introductory learning language now available, because it combines
  42. the ease of an interactive language (like BASIC, otherwise terrible) with
  43. the power and structure of a procedural language (like Pascal, not bad once
  44. you get past the details of editing and compiling and loading and semicolons
  45. and does var go before or after const).  If you aren't convinced, read the
  46. book "Mindstorms" by Seymour Papert.  It doesn't matter how old your
  47. students are.
  48.  
  49. This directory contains an interpreter for the Logo programming language.
  50. The interpreter is written in C and YACC, and runs under Unix(TM) version 7.
  51. It has been exported also to Vax 4BSD and to Idris on a PDP-11.  This program
  52. is based on a Logo interpreter originally written at the Boston Children's
  53. Museum; the present version is very much improved in its capabilities.  On
  54. the other hand, the original version ran in a 64Kb address space; this version
  55. requires split I/D on the PDP-11.  (It can be run on a smaller 11 by turning
  56. on the definition of SMALL in logo.h, but with hardly any recursion allowed.
  57. This configuration just barely works and is not recommended.  If someone with
  58. such a system wants to tune it up and send me the results, please do.  SMALL
  59. eliminates the pause feature (pause, continue, errpause, etc.) and the
  60. property list feature (pprop, gprop, etc.) as well as using short ints and
  61. floats instead of long ints and doubles.)
  62.  
  63. The file "logoman" in this directory is an nroff-format reference manual. It's
  64. very terse; you should really learn Logo from some other manual and use this
  65. one just to learn about idiosyncracies.  There are also two smaller
  66. documentation files, "applediff" for people accustomed to Apple
  67. Logo, and "olddiff" for people accustomed to the first LSRHS release.
  68. If you are getting this file via Usenet comp.sources.unix, you will
  69. have to do "cat logoman.[12] >logoman" first.
  70.  
  71. Users of the first release of LSRHS Logo (the one on the Usenix 82.1 tape)
  72. will find the present version more robust and also more featureful.  Its
  73. syntax is much like that of Apple Logo, which should be helpful to people
  74. with Apples as well as real computers.  Line numbers have been flushed,
  75. except for use with the go command.  The kludgy re-entrant use of the YACC
  76. parser has been eliminated.
  77.  
  78. The enclosed makefile should manage to compile this Logo with no errors.
  79. You will have to make some modifications for local conditions, most notably
  80. in the area of turtle graphics.  Most installation dependencies have been
  81. collected at the beginning of the file logo.h which is included in all
  82. compilations.
  83.  
  84. TURTLE GRAPHICS.  You must #define symbols in logo.h for the kind(s) of
  85. display hardware you support.  Also, if you have a graphics terminal which
  86. is not one of the ones already supported in this release, you'll have to
  87. add some code to turtle.c to support it.  The enclosed turtle.c
  88. knows about six kinds of graphics hardware:
  89.     1) Terrapin floor turtles, connected via DR11-K interfaces.
  90.     2) Atari 800 personal computers, running a special terminal program.
  91.     3) DEC GIGI graphics terminals.
  92.     4) Retrographics boards (known to work with ADM-5 terminals,
  93.         maybe also for other Retrographics products).
  94.     5) Tektronix 4014 storage tube displays (with severe restrictions
  95.         because of their inability to erase selectively).
  96.     6) Sun Microsystems workstations.
  97. The files ./*.i contain terminal-specific code which is #included in the
  98. compilation of turtle.c if the corresponding terminal is #defined in logo.h.
  99. The code for floor turtles is done very differently and is not separated into
  100. a .i file because, alas, it's not so modular.  If you have neither graphics
  101. terminals nor floor turtles, you should turn on the NOTURTLE definition in
  102. logo.h to eliminate the turtle primitives.
  103.  
  104. DEFAULT EDITOR.  The "edit" command in Logo does not use an editor built
  105. into Logo itself.  Instead, it forks and runs your favorite editor in a
  106. new process.  If you have an EDITOR variable in your environment, it uses
  107. that editor (it tries with /bin, /usr/bin, and nothing prepended).  If not,
  108. it uses the editor specified in the EDT definition in logo.h.  This is
  109. "jove" in the version as distributed.
  110.  
  111. INPUT WAITING TEST.  The "keyp" operation depends on a system call to
  112. check for characters waiting to be read from the keyboard.  If you are
  113. running a Berkeley-derived Unix, this will work correctly.  If not, but
  114. you have your own such system call, edit procedure keyp() in logoaux.c
  115. to use your own version.
  116.  
  117. FILENAME FORMAT.  Each Logo procedure is stored in a file called <name>.lg
  118. in the current working directory.  Under version 7 Unix, this allows names
  119. of procedures to be up to eleven letters long.  VMS filenames can only be
  120. nine letters.  The parameter NAMELEN in logo.h should be adjusted.  (Note:
  121. depending on when you got your version of Eunice, it may allow real Unix
  122. filenames, in which case you needn't worry about this.)
  123.  
  124. THE PAUSE FEATURE.  You can pause on an error
  125. inside a procedure, so you can examine the context interactively.  The
  126. pause feature distinguishes SIGINT and SIGQUIT, which were treated identically
  127. in earlier releases.  In the normal distribution, SIGQUIT returns to toplevel,
  128. whereas SIGINT causes a pause.  The problem is with Eunice, which doesn't
  129. provide SIGQUIT because VMS doesn't have enough interrupt characters.
  130. Therefore, the standard distribution allows pausing but not quitting to
  131. toplevel, although you can say "toplevel" while paused.  If you'd rather
  132. have quitting be the default, as in previous releases, interchange the
  133. definitions of PAUSESIG and OTHERSIG in logo.h; there are also commands
  134. to allow the user to make this switch dynamically.
  135.  
  136. (Eunice users:  Until just recently, an obscure bug in Eunice had the effect
  137. that when you type ^C you don't see a prompt until you hit return.  The switch
  138. called EUNICE in logo.h enables a workaround for this bug.  Dave Kashtan has
  139. now fixed the underlying problem, but not necessarily in the version you have.
  140. If you get too few prompts, turn on the #define EUNICE; if too many prompts,
  141. turn it off.)
  142.  
  143. -----
  144. INSTALLATION etc.
  145.  
  146. Saying "make install" after you compile your Logo will install Logo in
  147. /bin/logo and will also set up two directories:
  148.     /usr/lib/logo    Library routines written in Logo for general use
  149.                 Also stuff for edit and pots commands.
  150.     /usr/doc/logo    Excerpts from the manual for the "describe" command
  151. The files in these directories are copied, not moved; you can delete the
  152. originals if you prefer.  See the makefile.  These directories must have
  153. the names shown here, although you can put logo itself somewhere other than
  154. /bin if you prefer.
  155.  
  156. There are three C source files included here which are not part of the Logo
  157. interpreter itself.  One, logohead.c, is used to compile the program
  158. /usr/lib/logo/logohead which is used for the pots command.  Another,
  159. splithelp.c, is part of the makehelp shell script which is used to generate
  160. the online help messages from the manual.  The third C file,
  161. dr11k.c, is a device driver for version 7 for a DEC DR11-K used to interface
  162. Terrapin floor turtles (you get two per DR11-K) to the PDP-11.  The interface
  163. costs much more than the turtles!
  164.  
  165. INCOMPATIBILITY WITH RELEASE 2.  (This release is VERY incompatible with
  166. release 1; see the file olddiff for details.)  To be compatible
  167. with VMS restricted filenames, to run under Eunice, the names of files used
  168. to store Logo procedure definitions have been changed from foo.logo to
  169. foo.lg (some installations have a version of release 2 in which the name
  170. foo.log is used, but that looks too much like a log file from a batch job;
  171. the new version seems more Unixy anyway).  If you prefer to keep the old
  172. convention of .logo names, turn on the definition of EXTLOGO in logo.h.
  173.  
  174. Check your makefile to be sure it refers to "y.tab.c" and "y.tab.o" on
  175. Unix, "ytab.c" and "ytab.o" on Eunice.  (Again, some versions of Eunice
  176. use the real Unix filenames.)
  177.  
  178. If you have questions about this Logo, try
  179.     Computer Department
  180.     Lincoln-Sudbury Regional High School
  181.     390 Lincoln Road
  182.     Sudbury, MA  01776
  183.     617 443-9961
  184.  
  185.